last minute solve to get some points.  definitely improvable but i am not getting into all that right now